package com.koron.plan.web.patrollineplan.bean.query;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author jzp
 * @since 2022/11/24
 */
@Data
public class PlanLinePatrolQuery {

    @ApiModelProperty("id字符串集合，逗号分隔")
    private String idStr;

    @ApiModelProperty("id集合")
    private List<String> ids;

    @ApiModelProperty("编码,{标识码}{单位缩写}{YYYYMMDD}{流水号}，eg:XSTY20210923001")
    private String code;

    /**
     * 计划名称
     */
    @ApiModelProperty("计划名称")
    private String name;

    /**
     * 巡视类别：厂站、线路、分水点
     */
    @ApiModelProperty("巡视类别：厂站、线路、分水点")
    private String patrolCategory;

    /**
     * 计划类型：定期、特殊 plan_patrol_category
     */
    @ApiModelProperty("计划类型：定期、特殊 plan_patrol_category")
    private String planCategory;

    /**
     * 巡视方式：现场巡视、视频巡视 plan_patrol_way
     */
    @ApiModelProperty("巡视方式：现场巡视、视频巡视 plan_patrol_way")
    private String planPatrolWay;

    /**
     * 计划所属部门，默认跟创建单位相同
     */
    @ApiModelProperty("计划所属部门，默认跟创建单位相同")
    private String planDeptId;

    /**
     * 计划所属部门名称，默认跟创建单位相同
     */
    @ApiModelProperty("计划所属部门名称，默认跟创建单位相同")
    private String planDeptName;

    /**
     * 巡视单位
     */
    @ApiModelProperty("巡视单位")
    private String patrolDeptId;

    /**
     * 巡视单位名称
     */
    @ApiModelProperty("巡视单位名称")
    private String patrolDeptName;

    /**
     * 值班地点，弃用
     */
    @ApiModelProperty("值班地点，弃用")
    private String locationId;

    /**
     * 签到方式：GPS、无
     */
    @ApiModelProperty("签到方式：GPS、无")
    private String arriveWay;

    /**
     * 完成时必须签名 是：1 否：0
     */
    @ApiModelProperty("完成时必须签名 是：1 否：0")
    private Integer mustSign;

    /**
     * 计划状态
     */
    @ApiModelProperty("计划状态")
    private Integer state;

    @ApiModelProperty("主表需要部门字段，用于数据权限")
    private String deptId;

    @ApiModelProperty("部门名称")
    private String deptName;

    @ApiModelProperty("创建人,账号")
    private String createBy;

    @ApiModelProperty("创建人名称")
    private String createByName;

    @ApiModelProperty("创建时间")
    private List<Date> createTime;

    @ApiModelProperty("删除标志")
    private Boolean deleteFlag = false;

    public List<String> getIds() {
        if (ids == null && idStr != null) {
            return Arrays.asList(idStr.split(","));
        }
        return ids;
    }
}
